package cn.ym.pet.domain;


import cn.ym.basic.domain.BaseDomain;
import cn.ym.org.domain.Shop;
import cn.ym.user.domain.User;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 实体类：
 */
@Data
public class Pet extends BaseDomain {

    private String name;
    private BigDecimal costprice;
    private BigDecimal saleprice;
    /**
     * 类型id
     */
    private Long typeId;
    //宠物类型对象 - 类型的名称
    private PetType petType;
    //资源
    private String resources;
    /**
     * 状态：0下架 1上架
     */
    private Integer state;
    //下架时间
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date offsaletime;
    //上架时间
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date onsaletime;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createtime = new Date();
    /**
     * 宠物所在的店铺的id
     */
    private Long shopId;
    //所属店铺对象
    private Shop shop;
    /**
     * 领养该宠物的用户id
     */
    private Long userId;
    //领养人对象：如果有领养人了这个宠物应该是下架
    private User user;
    /**
     * 宠物2种来源：
     * 1.店铺自己饲养 searchMasterMsgId= null
     * 2.用户发布寻主消息，店铺去收购宠物 - 宠物来自于这一条寻主消息
     */
    private Long searchMasterMsgId;

    //获取部门树
    //部门树最后一级没有数据就不显示
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<PetType> children = new ArrayList<>();

    //1.列表查询的时候将详情信息查询出来  2.在添加和修改的时候接收前端传递的数据
    private PetDetail petDetail;
}
